<?php
namespace Admin\Controller;
use Think\Controller;

/**
 * Class ModuleController
 * @package Admin\Controller
 * 模块控制器
 */

\gt_base::load_sys_func('dir');

class ModuleController extends Controller {

    public function index(){
        //获取模块文件夹下的全部模块
        $module_path = APP_BASE.DIRECTORY_SEPARATOR.'Application'.DIRECTORY_SEPARATOR;
        $module_path = dir_path($module_path);
        $disallow_list = C('MODULE_DENY_LIST');
        $module_list = glob($module_path.'*');
        if(is_array($module_list)&&!empty($module_list)){
            $temp_module = array();
            foreach($module_list as $v){
                $v = basename($v);
                if(is_dir($module_path.$v)){
                    if(!in_array($v, $disallow_list)){
                        $temp_module[] = $v;
                    }
                }
            }
        }
        $this->assign('module_list', $temp_module);
        //判断哪些可以访问
        //判断是可以访问的是否已经安装
        //输出判断列表
        $this->display();
    }

    public function install(){
        $this->module = $_POST['module'] ? $_POST['module'] : $_GET['module'];
        if(IS_GET){
            $this->assign('this_module', $this->module);
            $this->display('module_config');
        }else{
            $module_api = \gt_base::load_module_class('module_api');
            if (!$module_api->check_file($this->module))
                echo '';
            if ($module_api->install()) {
//                showmessage(L('success_module_install').L('update_cache'), '?m=admin&c=module&a=cache&pc_hash='.$_SESSION['pc_hash']);
            }else{
//                showmesage($module_api->error_msg, HTTP_REFERER);
            }
        }
    }

    public function uninstall(){
        $this->module = $_POST['module'] ? $_POST['module'] : $_GET['module'];
        $module_api = \gt_base::load_module_class('module_api');
        if (!$module_api->uninstall($this->module)) {
            echo $module_api->error_msg;
//                showmessage(L('success_module_install').L('update_cache'), '?m=admin&c=module&a=cache&pc_hash='.$_SESSION['pc_hash']);
        }else{
//                showmesage($module_api->error_msg, HTTP_REFERER);
        }
        $this->assign('this_module', $this->module);
        $this->display('module_config');
    }

}